import { getMusicLyric } from '@/request/api/item.js'
import { createStore } from 'vuex'
import { getPhoneLogin } from '@/request/api/home'

export default createStore({
  state: {
    // 默认的播放列表
    playList: [
      {
        //播放列表
        al: {
          id: 89039055,
          name: '雨爱抖音版',
          pic: 109951164966568500,
          picUrl: 'https://p1.music.126.net/2f6UgY8Jc0Dy6jufMdIZeQ==/109951164966568495.jpg',
          pic_str: '109951164966568495',
        },
        id: 1446137141,
        name: '雨爱（抖音版）',
        ar: [{ name: '灏灏灏仔' }],
      },
    ],
    playListIndex: 0, //默认下标为0
    isbtnShow: true, //暂停按钮的显示
    detailShow: false, //歌曲详情页的显示
    lyricList: {}, //歌词
    currentTime: 0, //当前时间
    duration: 0, //歌曲总时长
    isLogin: false, //判断是否登录
    isFooterMusic: true, //判断底部组件是否需要显示
    token: '',
    user: {}, //用户信息
  },
  getters: {},
  // 方法
  mutations: {
    // 用于改变 全局播放布尔值，的状态
    upataIsbtnShow(state, value) {
      state.isbtnShow = value
    },

    // 往 歌单中添加歌曲
    pushPlayList(state, value) {
      state.playList.push(value)
    },

    // 歌曲的切换
    updatePlayList(state, value) {
      // 接收传进来的歌曲信息，并赋值给播放列表
      state.playList = value
      console.log(state.playList)
    },
    // 歌曲索引
    updatePlayListIndex(state, value) {
      state.playListIndex = value
    },
    // 管理 歌词详情
    updateDetailShow(state) {
      state.detailShow = !state.detailShow
    },
    // 管理 歌词 函数
    updatelyricList(state, value) {
      state.lyricList = value
    },

    // 管理当前时间
    updateCurrentTime(state, value) {
      // console.log(state.currentTime);
      state.currentTime = value
    },
    // 歌曲总时长
    updateDuration: function (state, value) {
      state.duration = value
    },

    // 管理登录 状态
    updateIsLogin: function (state, value) {
      state.isLogin = true
    },
    // token
    updateToken: function (state, value) {
      state.token = value
      localStorage.setItem('token', state.token)
    },
    updateUser: function (state, value) {
      state.user = value
    },
  },

  // 异步请求
  actions: {
    // 获取歌曲歌词
    async getLyric(context, value) {
      // 使用 getMusicLyric 函数 前必须要引入
      const res = await getMusicLyric(value)
      // console.log(res)
      // 提交,传值
      context.commit('updatelyricList', res.data.lrc)
    },

    // 登录异步获取
    async getLogin(context, value) {
      let res = await getPhoneLogin(value)
      // console.log(res);
      // 将结果返回出去
      return res
    },
  },
  modules: {},
})
